package cloud.daodao.storm.common.user.error;

import cloud.daodao.storm.common.constant.ServiceCode;
import cloud.daodao.storm.common.error.ErrorEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @author DaoDao
 */
@Getter
@AllArgsConstructor
public enum UserError implements ErrorEnum {

    ERROR(code("001"), "用户服务异常"),
    USER_NOT_EXIST(code("002"), "用户不存在"),
    USERNAME_ALREADY_EXIST(code("003"), "用户名已存在"),
    USER_PASSWORD_INCORRECT(code("004"), "密码错误，请输入正确的密码"),

    OLD_AND_NEW_PASSWORDS_CANNOT_BE_THE_SAME(code("005"), "新旧密码不可设置为一致"),

    LOGIN_CAPTCHA_ERROR(code("006"), "登录验证码错误"),
    INVOKE_OAUTH2_EXCEPTION(code("007"), "调用 oauth2 服务异常"),

    ROLE_NOT_EXIST(code("008"), "角色不存在"),
    ROLE_NAME_ALREADY_EXIST(code("009"), "角色名称已经存在"),
    ROLE_CODE_ALREADY_EXIST(code("010"), "角色代码已经存在"),

    PERMISSION_NOT_EXIST(code("011"), "权限不存在"),
    PERMISSION_NAME_ALREADY_EXIST(code("012"), "权限名称已经存在"),
    PERMISSION_CODE_ALREADY_EXIST(code("013"), "权限代码已经存在"),
    USER_INVALID(code("014"), "用户无效"),
    OLD_PASSWORD_INCORRECT(code("015"), "原密码错误，请输入正确的密码"),
    INVOKE_DICT_EXCEPTION(code("016"), "调用 dict 服务异常"),
    INVOKE_USER_EXCEPTION(code("017"), "调用 user 服务异常"),
    NICKNAME_ALREADY_EXIST(code("018"), "昵称已存在"),
    INVOKE_FILE_EXCEPTION(code("019"), "调用 file 服务异常"),
    AVATAR_NOT_EXIST(code("020"), "头像不存在"),
    USERNAME_NOT_NULL(code("021"), "用户名不能为空"),
    INVOKE_MESSAGE_EXCEPTION(code("022"), "调用 message 服务异常"),

    ;

    /**
     * 错误编码
     */
    public final String code;

    /**
     * 错误信息
     */
    public final String message;

    private static String code(String code) {
        return ServiceCode.USER + code;
    }

}
